package edu.ahut.corejava3;

import java.util.Arrays;
import java.util.Scanner;

/**
 * 从键盘上输入若干个数（个数不确定），对这些数去重和排序
 */
public class UniqueSortNumbers00 {
    public static void main(String[] args) {
        int[] a = new int[2];
        int n = 0;
        while (cin.hasNext()) {//Ctrl+Z/D  EOF
            if (n == a.length) {//已有数组容量都已经用完 ，需要倍增容量
                int[] b = new int[a.length << 1];//加倍容量 最多执行O(logn)
                System.arraycopy(a, 0, b, 0, a.length);
                a = b;//a指向新的空间b 放弃原来的空间（下一个周期会被System.gc回收）
                System.err.println("----double capacity finished-----");
            }
            a[n++] = cin.nextInt();

        }

        Arrays.sort(a,0,n);//对数组a的有效元素进行排序[fromIndex,toIndex)

        int[] b = new int[n];//b保留去掉重复的元素
        int m = 0;//不重复元素的个数
        b[m++] = a[0];//加入第一个元素

        for (int i = 1; i < n; i++) {
            if (a[i] == a[i - 1]) continue;
            b[m++] = a[i];
        }


        for (int i = 0; i < m; i++) {
            System.out.print(b[i] + " ");
        }
        System.out.println("\ntotal m="+m);
    }

    static Scanner cin = new Scanner(System.in);
}
